Backreference ব্যবহার করে আগের গ্রুপের মিল খুঁজে বের করা

Backreferences এবং Recursion - জাভাস্ক্রিপ্ট রেগএক্সপি (Javascript RegExp) - Web Development

208

Backreference হল RegExp এর একটি শক্তিশালী বৈশিষ্ট্য যা পূর্বে ধরা গ্রুপের মান পুনরায় ব্যবহার করতে দেয়। এটি আপনার প্যাটার্নে আগে যে অংশটি মিলেছে, সেই অংশটি আবার পরবর্তীতে মেলানোর জন্য ব্যবহৃত হয়। Backreference ব্যবহার করে আপনি স্ট্রিংয়ের মধ্যে পূর্ববর্তী গ্রুপের মানটি মেলাতে পারেন।


Backreference এর সিনট্যাক্স

Backreference এর জন্য আপনি গ্রুপের নম্বর ব্যবহার করেন, যেমন \1, \2, \3 ইত্যাদি, যেখানে \1 প্রথম গ্রুপ, \2 দ্বিতীয় গ্রুপ, এবং এভাবে পরবর্তী গ্রুপের জন্য ব্যবহৃত হয়।


উদাহরণ: Backreference ব্যবহার

ধরা যাক, আমরা একটি প্যাটার্ন তৈরি করতে চাই যেখানে দুটি অংশের মধ্যে প্রথম অংশটি এবং দ্বিতীয় অংশটি একই হতে হবে। আমরা একটি গ্রুপে প্রথম অংশটি ধরব এবং backreference দিয়ে সেটি পরবর্তী অংশের জন্য মিল করাবো।

let regex = /(\d+)-\1/;
let str = "123-123";
console.log(regex.test(str));  // true

এখানে, (\d+) প্রথম গ্রুপের মাধ্যমে সংখ্যা ধরেছে এবং \1 দিয়ে আমরা আগের গ্রুপের (যেটি \d+ ছিল) একই মান মেলানোর চেষ্টা করছি। স্ট্রিং 123-123 এখানে সফলভাবে মিলেছে কারণ প্রথম সংখ্যাটি দ্বিতীয় সংখ্যার সঙ্গে একরকম।


একাধিক Backreference

আপনি একাধিক backreferences ব্যবহার করে একাধিক গ্রুপের মান মিলিয়ে আরও জটিল প্যাটার্ন তৈরি করতে পারেন।

let regex = /(\w+)-\1-\1/;
let str = "hello-hello-hello";
console.log(regex.test(str));  // true

এখানে, (\w+) প্রথম গ্রুপটি ধরছে এবং \1-\1 দিয়ে আমরা একই মান তিনবার মেলানোর চেষ্টা করছি। স্ট্রিং hello-hello-hello সফলভাবে এই প্যাটার্নের সঙ্গে মিলে যায়।


উদাহরণ: ইমেল যাচাই (Email Validation) Backreference দিয়ে

একটি ইমেল ঠিকানা যাচাই করতে backreference ব্যবহার করা যেতে পারে যেখানে প্রথম এবং দ্বিতীয় অংশের @ চিহ্নের পরপর একই শব্দ থাকতে হবে।

let regex = /^([a-zA-Z0-9]+)@(\1)\.com$/;
let str = "test@test.com";
console.log(regex.test(str));  // true

এখানে, ([a-zA-Z0-9]+) প্যাটার্নটি প্রথম অংশ হিসেবে "test" ধরেছে এবং (\1) দিয়ে আমরা দ্বিতীয় অংশের "test" মেলাতে চাচ্ছি। স্ট্রিং test@test.com সফলভাবে মিলেছে।


Backreference এর Limitations

  1. গ্রুপ সীমাবদ্ধতা: RegExp-এ গ্রুপগুলি একটি নির্দিষ্ট সংখ্যা পর্যন্ত সীমাবদ্ধ থাকে, এবং আপনি গ্রুপের সংখ্যা হিসেবে সেটি নির্ধারণ করতে পারেন।
  2. পারফরমেন্স: Backreference ব্যবহার করা কিছু ক্ষেত্রে পারফরমেন্সে প্রভাব ফেলতে পারে, বিশেষত বড় প্যাটার্ন বা স্ট্রিংয়ের ক্ষেত্রে।
  3. Complexity: Backreference কিছু জটিল প্যাটার্ন তৈরি করতে সাহায্য করতে পারে, তবে খুব বেশি ব্যবহার করলে প্যাটার্নের অস্বচ্ছতা বাড়তে পারে।

সারাংশ

Backreference RegExp-এ আগের গ্রুপের মান পুনরায় ব্যবহার করার একটি কার্যকর পদ্ধতি। এটি \1, \2, \3 ইত্যাদি সিনট্যাক্সের মাধ্যমে এক বা একাধিক গ্রুপের মান স্ট্রিংয়ের মধ্যে মেলাতে সাহায্য করে। Backreference মূলত তখন ব্যবহৃত হয় যখন আপনি একই প্যাটার্ন বা অংশের পুনরাবৃত্তি চান, যেমন স্ট্রিংয়ের মধ্যে দুটি সমান অংশের মিল খুঁজে বের করা।

Content added By
Promotion

Are you sure to start over?

Loading...